/*
 *  Player - One Hell of a Robot Server
 *  Copyright (C) 2000
 *     Brian Gerkey, Kasper Stoy, Richard Vaughan, & Andrew Howard
 *                   
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
 *
 */

/* 
 * robot_params.h 
 *
 * ActivMedia robot parameters, automatically generated by saphconv.tcl from 
 * Saphira parameter files:
 *    Aria-2.7.3/params/amigo-sh.p
 *    Aria-2.7.3/params/amigo.p
 *    Aria-2.7.3/params/p2at.p
 *    Aria-2.7.3/params/p2at8+.p
 *    Aria-2.7.3/params/p2at8.p
 *    Aria-2.7.3/params/p2ce.p
 *    Aria-2.7.3/params/p2d8+.p
 *    Aria-2.7.3/params/p2d8.p
 *    Aria-2.7.3/params/p2de.p
 *    Aria-2.7.3/params/p2df.p
 *    Aria-2.7.3/params/p2dx.p
 *    Aria-2.7.3/params/p2it.p
 *    Aria-2.7.3/params/p2pb.p
 *    Aria-2.7.3/params/p2pp.p
 *    Aria-2.7.3/params/p3at-sh.p
 *    Aria-2.7.3/params/p3at.p
 *    Aria-2.7.3/params/p3atiw-sh.p
 *    Aria-2.7.3/params/p3dx-sh.p
 *    Aria-2.7.3/params/p3dx.p
 *    Aria-2.7.3/params/patrolbot-sh.p
 *    Aria-2.7.3/params/peoplebot-sh.p
 *    Aria-2.7.3/params/perfpb+.p
 *    Aria-2.7.3/params/perfpb.p
 *    Aria-2.7.3/params/pion1m.p
 *    Aria-2.7.3/params/pion1x.p
 *    Aria-2.7.3/params/pionat.p
 *    Aria-2.7.3/params/powerbot-sh-uarcs.p
 *    Aria-2.7.3/params/powerbot-sh.p
 *    Aria-2.7.3/params/powerbot.p
 *    Aria-2.7.3/params/psos1m.p
 *    Aria-2.7.3/params/psos1x.p
 *    Aria-2.7.3/params/psos43m.p
 *    Aria-2.7.3/params/researchPB.p
 *    Aria-2.7.3/params/seekur.p
 *    Aria-2.7.3/params/seekurjr.p
 *    Aria-2.7.3/params/wheelchair-sh.p
*/

#ifndef _ROBOT_PARAMS_H
#define _ROBOT_PARAMS_H


void initialize_robot_params(void);

#define PLAYER_NUM_ROBOT_TYPES 36


typedef struct
{
  double x;
  double y;
  double th;
} sonar_pose_t;


typedef struct
{
  double x;
  double y;
  double th;
  double length;
  double radius;
} bumper_def_t;


typedef struct
{
  double AngleConvFactor; // 
  char* Class; // 
  char* CompassPort; // 
  char* CompassType; // 
  double DiffConvFactor; // 
  double DistConvFactor; // 
  int FrontBumpers; // 
  int GPSBaud; // 
  int GPSPX; // 
  int GPSPY; // 
  char* GPSPort; // 
  char* GPSType; // 
  double GyroScaler; // 
  int HasLatVel; // 
  int HasMoveCommand; // 
  int Holonomic; // 
  int IRNum; // 
  int IRUnit; // 
  char* LaserAutoBaudChoice; // 
  int LaserAutoConnect; // 
  int LaserCumulativeBufferSize; // 
  char* LaserDegreesChoice; // 
  char* LaserEndDegrees; // 
  int LaserFlipped; // 
  char* LaserIgnore; // 
  char* LaserIncrement; // 
  char* LaserIncrementChoice; // 
  int LaserMaxRange; // 
  char* LaserPort; // 
  char* LaserPortType; // 
  int LaserPowerControlled; // 
  char* LaserReflectorBitsChoice; // 
  char* LaserStartDegrees; // 
  char* LaserStartingBaudChoice; // 
  int LaserTh; // 
  char* LaserType; // 
  char* LaserUnitsChoice; // 
  int LaserX; // 
  int LaserY; // 
  int LaserZ; // 
  int LatAccel; // 
  int LatDecel; // 
  int LatVelMax; // 
  int MaxLatVelocity; // 
  int MaxRVelocity; // 
  int MaxVelocity; // 
  int NewTableSensingIR; // 
  int NumFrontBumpers; // 
  int NumRearBumpers; // 
  double RangeConvFactor; // 
  int RearBumpers; // 
  int RequestEncoderPackets; // 
  int RequestIOPackets; // 
  int RobotDiagonal; // 
  int RobotLength; // 
  int RobotLengthFront; // 
  int RobotLengthRear; // 
  int RobotRadius; // 
  int RobotWidth; // 
  int RotAccel; // 
  int RotDecel; // 
  int RotVelMax; // 
  int SettableAccsDecs; // 
  int SettableVelMaxes; // 
  int SonarNum; // 
  char* Subclass; // 
  int SwitchToBaudRate; // 
  int TableSensingIR; // 
  int TransAccel; // 
  int TransDecel; // 
  int TransVelMax; // 
  int Vel2Divisor; // 
  double VelConvFactor; // 
  sonar_pose_t sonar_pose[32];
  bumper_def_t bumper_geom[12];
} RobotParams_t;


extern RobotParams_t PlayerRobotParams[];


#endif
